// @ts-nocheck
import path from 'path'
import fs from 'fs'
import marked from 'marked'

const mdToJs = (str) => {
  const content = JSON.stringify(marked(str))
  return `export default ${content}`
}

export function md() {
  return {
    configureServer: [
      // 用于开发
      async ({ app }) => {
        app.use(async (ctx, next) => {
          // koa -->web框架
          // 如果路径是以.md结尾的，我就把它变成js
          if (ctx.path.endsWith('.md')) {
            ctx.type = 'js'
            const filePath = path.join(process.cwd(), ctx.path)
            // js的内容就是，把markdown变成js，因为浏览器支持持js，用css方式加载css。ts。 md
            ctx.body = mdToJs(fs.readFileSync(filePath).toString())
            // 使用mdToJs做到的转换，变成export default的形式
          } else {
            await next()
          }
        })
      },
    ],
    transforms: [
      {
        // 用于 rollup的一个插件
        // 你要对哪些文件进行编译，如果你的文件后缀.md结尾，
        test: (context) => context.path.endsWith('.md'),
        // 使用mdToJs，把md变成js代码，这样rollup就能理解了
        transform: ({ code }) => mdToJs(code),
      },
    ],
  }
}
